Interactive television services provide a television viewer with the ability to interact with their television in meaningful ways. Such services have been used, for example, to provide navigable menuing and ordering systems that are used to implement electronic program guides and pay-per-view or other on-demand program reservations and purchases, eliminating the need to phone the television provider. Other uses include interacting with television programming for more information on characters, plot, or actors, or interacting with television advertisements for more information on a product or for a discount coupon.
These services typically employ a software application that is executed on a server system located remotely from the TV viewer such as at a cable television headend. The output of the application is streamed to the viewer, typically in the form of an audio-visual MPEG Transport Stream. This enables the stream to be displayed on virtually any client device that has MPEG decoding capabilities such as a television set-top box. The client device allows the user to interact with the remote application by capturing keystrokes and passing these back to the application running on the server.
In cable system deployments, the headend server and its in-home set-top or other client are separated by a managed digital cable-TV network that uses well-known protocols such as ATSC or DVB-C. Here, “managed” means that any bandwidth resources required to provide these services may be reserved prior to use. Once resources are allocated, the bandwidth is guaranteed to be available, and the viewer is assured of receiving a high-quality interactive application experience.
In recent years, audio-visual consumer electronics devices increasingly support a Local Area Network (LAN) connection, giving rise to a new class of client devices: so-called “Broadband Connected Devices”, or BCDs. These devices may be used in systems other than the traditional cable television space, such as on the Internet. For example, a client device, such as a so-called smart TV, may implement a client application to deliver audio-visual applications streamed over a public data network from an audio-visual application streaming server to a television. A user may employ a remote control in conjunction with the client device to transmit interactive commands back to the application streaming server, thereby interacting with the server controlling the choice and delivery of desired content.
The “last mile” (the final leg of the telecommunications networks providing the actual connectivity to the end user) in public networks is typically made up of a number of network technologies, ranging from high-capacity fiber-optical networks to asymmetric digital subscription lines. In contrast inside a home, distribution is often realized by means of wireless technologies such as IEEE 802.11 networks (commonly known as Wi-Fi networks.) As a result, capacity (here meaning the maximum aggregate bandwidth a specific link is able to carry) varies between end-users, and due to the wireless technologies involved, capacity for a particular end-user also varies over time. Further, public data networks are not managed in the same way as private cable television distribution systems are. TCP, the most common transport protocol for the Internet, tries to maximize usage of its fair share of the capacity. As a result, it is impossible to guarantee a specific amount of bandwidth to applications running over such networks.
The intricacies of transmitting video over a network of varying capacity and available bandwidth (i.e., capacity not in use yet) conditions are a known challenge that has been successfully addressed. Examples of systems that transmit video over a network with varying capacity and available bandwidth (i.e., capacity not in use yet) include:                1. Video conference call systems,        2. Cloud game services,        3. HLS (HTTP Live Streaming), and        4. Progressive download video-on-demand.        
Video conference call systems and cloud game services represent a type of system where a continuous low-delay video signal is encoded in real-time. The encoded stream adapts to changing network conditions by changing the picture quality, where a lower picture quality (typically realized by a higher average quantization of the coefficients that represent the picture) yields a lower average bitrate. Typically, these systems stream over an unreliable transport (such as UDP or RTP) and employ error correction and/or concealment mechanisms to compensate for loss. Any artifacts due to this loss or imperfect concealment are corrected over time due to the continuous nature of the signal. These systems require a complex and often proprietary client not only because of the complexity of the employed methods of concealment, but also because the client plays an important role in the measurement and reporting of the statistics that allow the server to make intelligent decisions about network conditions.
On the other end of the spectrum are systems that stream an offline-encoded, non-real-time stream over a reliable transport protocol like TCP/HTTP. These streams are progressively downloaded, where buffering makes the system robust for temporal variations in available bandwidth or capacity and, in the case of HLS for example, the stream changes to a different quality level depending on the capacity or sustained available bandwidth. In this case, the complexity of the client is relatively low and the components that make up the client are well-defined.
An interactive television service has a combination of properties of both of these previously mentioned types of systems. The streams exhibit low delay, real-time properties typically associated with UDP/RTP high-complexity, proprietary clients. However, the stream is received by relatively low-complexity clients using standard components. Typically such clients are more akin to progressive download clients using TCP/HTTP than to the clients that provide interactive or real-time services.
An interactive television service also has relatively static portions with a graphical user interface (GUI) that requires low-latency, artifact-free updates upon interactivity, combined with portions that have full motion video and audio that require smooth and uninterrupted play out.
Conventional systems do not adequately facilitate this combination of requirements. A new approach is therefore needed.